package com.wc.alorithm_blue_bridge._动态规划.Q4049;

import java.io.*;
/**
 * @Author congege
 * @Description
 * 明日方舟大作战！
 * https://www.lanqiao.cn/problems/4049/learning/?page=1
 * @Date Created in 2023/11/24-16:01
 */
public class Main {
    public static void main(String[] args) {
        Input sc = new Input();
        int n = sc.nextInt();
        int m = sc.nextInt();
        int B = sc.nextInt();
        int[] attacks = new int[n];
        int[] costs = new int[n];
        int maxAge = 0;
        int[] dp = new int[B + 1];

        for(int i = 0; i < n; i++){
            attacks[i] = sc.nextInt();
            costs[i] = sc.nextInt();
        }

        // 使用背包 求出最大的战斗力
        for(int i = 0; i < n; i++){
            for(int j = B; j >= costs[i]; j--){
                dp[j] = Math.max(dp[j],dp[j - costs[i]] + attacks[i]);
            }
        }
        int maxAttack = dp[B];

        // 求出最大生命值，其他都是炮灰
        for(int i = 0; i < m; i++){
            maxAge = Math.max(maxAge, sc.nextInt());
        }

        if(maxAttack == 0){
            System.out.println(-1);
        }else{
            int ans = maxAge / maxAttack;
            if(maxAge - ans * maxAttack > 0){
                ans++;
            }
            System.out.println(ans);
        }
    }

    static class Input{
        StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));

        public int nextInt(){
            try{
                in.nextToken();
            }catch(Exception e){
                return -1;
            }
            return (int) in.nval;
        }
    }
}
